package edu.bbu.license.client.android.services.transfer.worker;

import java.util.List;

import edu.bbu.license.client.android.services.exceptions.IdentificationException;
import edu.bbu.license.client.android.services.exceptions.NetworkException;
import edu.bbu.license.client.android.services.exceptions.UnknownException;
import edu.bbu.license.client.android.services.file.model.LocalFile;
import edu.bbu.license.client.android.services.file.model.ServerFile;
import edu.bbu.license.client.android.services.transfer.listener.TransferListener;
import edu.bbu.license.client.android.services.transfer.model.SimpleTransferObject;

public interface TransferService {
	public static final int ONE_WAY_SYNC = 1;
	public static final int TWO_WAY_SYNC = 2;
	
	public void startUpload(LocalFile localFile, ServerFile uploadDirectory) throws IdentificationException, NetworkException, UnknownException;
	public void startDownload(ServerFile serverFile, LocalFile downloadDirectory) throws IdentificationException, NetworkException, UnknownException;
	
	public void startSynchronization();
	
	public void removeTransfer(SimpleTransferObject transferObject);
	
	public void addTransferListener(TransferListener transferListener);
	public void removeTransferListener(TransferListener transferListener);
	
	public List<SimpleTransferObject> getTransfers();
}
